Conversation
Add the simulation entry point for building dsl files, using Continuous2DEnvironment as default environment
Introduce dsl support for defining deployments using any Deployment<*> type
add dsl support for defining contents inside a deployment
add a helper function that allows to test if a loader generated by the dsl is the same as a loader generated by a yml file
now we also compare two simulations after running them for few steps.
add @BuildDsl annotation to automatically generate helper functions
add @BuildDsl annotation to automatically generate helper functions
…inDslProviderTest
|
Hi @DanySK! 👋 |
# Conflicts: # dokka-cache/it.unibo.alchemist/alchemist-web-renderer/42.4.1.list
|
Hi @DanySK! 👋 |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #5115 +/- ##
=========================================
Coverage 61.53% 61.53%
Complexity 14 14
=========================================
Files 2 2
Lines 78 78
Branches 4 4
=========================================
Hits 48 48
Misses 24 24
Partials 6 6 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
There was a problem hiding this comment.
Pull request overview
This pull request introduces a Kotlin DSL as an alternative to YAML configuration files for defining Alchemist simulations. This is a significant feature addition that provides a type-safe, programmatic way to configure simulations.
Changes:
- Adds two new modules:
alchemist-kotlinscriptfor script execution andalchemist-factories-generatorfor KSP-based code generation - Introduces breaking API changes to remove redundant parameters from core interfaces (
Incarnation,GenericNode) - Changes
Environment.layersfromListSet<Layer>toMap<Molecule, Layer>for better type safety - Adds comprehensive DSL context interfaces using Kotlin context receivers
- Includes test coverage with equivalence tests comparing DSL and YAML outputs
Reviewed changes
Copilot reviewed 205 out of 212 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
settings.gradle.kts |
Adds two new modules to the build |
alchemist-kotlinscript/** |
New module for Kotlin script compilation and execution |
alchemist-factories-generator/** |
New KSP processor module for generating factory code |
alchemist-loading/src/main/kotlin/it/unibo/alchemist/boundary/kotlindsl/** |
Core DSL context interfaces and implementations |
alchemist-loading/src/test/kotlin/it/unibo/alchemist/boundary/kotlindsl/** |
DSL test suite with equivalence tests |
alchemist-api/src/main/java/it/unibo/alchemist/model/Incarnation.java |
Removes redundant time parameter from factory methods |
alchemist-implementationbase/src/main/kotlin/it/unibo/alchemist/model/nodes/GenericNode.kt |
Removes redundant incarnation parameter from constructor |
alchemist-api/src/main/kotlin/it/unibo/alchemist/model/Environment.kt |
Changes layers from ListSet to Map |
| Various incarnation modules | Updates to match new API signatures |
| Build configuration files | Adds KSP support and context parameters compiler flag |
Files not reviewed (1)
- .idea/codeStyles/Project.xml: Language not supported
## [43.0.0](42.4.2...43.0.0) (2026-02-16) ### ⚠ BREAKING CHANGES * introduce a Kotlin DSL (#5115) ### Features * introduce a Kotlin DSL ([#5115](#5115)) ([c8e16b6](c8e16b6)) ### Dependency updates * **core-deps:** update react to v2026.2.13-19.2.4 (patch) ([#5141](#5141)) ([b08cb80](b08cb80)) * **deps:** update junit-framework monorepo to v6.0.3 (patch) ([#5140](#5140)) ([f1a16cb](f1a16cb)) ### General maintenance * **build:** update the javadoc.io cache ([fbdbd63](fbdbd63)) * **build:** update the javadoc.io cache ([4d75038](4d75038))
|
🎉 This PR is included in version 43.0.0 🎉 The release is available on:
Your semantic-release bot 📦🚀 |



No description provided.